#pragma once

#include "BaseSingleton.h"

class SingletonClass : public BaseSingleton<SingletonClass>
{
protected:
    SingletonClass(){};
    SingletonClass(const SingletonClass &)            = delete;
    SingletonClass(SingletonClass &&)                 = delete;
    SingletonClass &operator=(const SingletonClass &) = delete;
    virtual ~SingletonClass(){};

public:
    int  getValue();
    void setValue(int val);

private:
    int m_value;

public:
    friend BaseSingleton<SingletonClass>;
};